Model checking C++ programs
نویسندگان
چکیده
In the last three decades, memory safety issues in system programming languages such as C or C++ have been one of most significant sources security vulnerabilities. However, there exist only a few attempts with limited success to cope complexity program verification. We describe and evaluate novel verification approach based on bounded model checking (BMC) satisfiability modulo theories (SMT) verify programs. Our analyses programs by encoding into SMT various sophisticated features that language offers, templates, inheritance, polymorphism, exception handling, Standard Template Libraries. formalize these within our formal framework using decidable fragment first-order logic then show how state-of-the-art solvers can efficiently handle that. implemented top ESBMC. compare ESBMC LLBMC DIVINE, which are verifiers check directly from LLVM bitcode. Experimental results wide range programs, presenting higher number correct results. Additionally, has applied commercial application telecommunication domain successfully detected arithmetic-overflow errors, could potentially lead
منابع مشابه
Model Checking Procedural Programs
We consider the model-checking problem for sequential programs with procedure calls. We first present basic algorithms for solving the reachability problem and the fair computation problem. The algorithms are based on two techniques: summarization, that computes reachability information by solving a set of fixpoint equations, and saturation, that computes the set of all reachable program states...
متن کاملModel Checking Boolean Programs
The reliability of software is crucial to the functioning of today’s world, which heavily depends on computer systems. Given the ever increasing complexity of software, bugs are subtle and thus hard to find with manual inspection. A more promising approach is to use a formal method such as model checking, which employs exhaustive state-space search to ensure the correctness of the software. How...
متن کاملState Space Reduction Strategie for Model Checking Concurrent C Programs
Model checking is an effective technique for uncovering subtle errors in concurrent systems. Unfortunately, the state space explosion is the main bottleneck in model checking tools. Here we propose a state space reduction technique for model checking concurrent programs written in C. The reduction technique consists in an analysis phase, which defines an approximate agglomeration predicate. Thi...
متن کاملModel Checking LTL Properties over C Programs with Bounded Traces
Context-bounded model checking has been used successfully to verify safety properties in multi-threaded systems automatically, even if they are implemented in low-level programming languages such as C. In this paper, we describe and experiment with an approach to extend context-bounded software model checking to safety and liveness properties expressed in linear-time temporal logic (LTL). Our a...
متن کاملModel Checking Nonblocking MPI Programs
This paper explores a way to apply model checking techniques to parallel programs that use the nonblocking primitives of the Message Passing Interface (MPI). The method has been implemented as an extension to the model checker Spin called Mpi-Spin. It has been applied to 17 examples from a widely-used textbook on MPI. Many correctness properties of these examples were verified and in two cases ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Software Testing, Verification & Reliability
سال: 2021
ISSN: ['1099-1689', '0960-0833']
DOI: https://doi.org/10.1002/stvr.1793